package jp.co.menox.controller.tmserver.gate;

import jp.co.menox.controller.tmserver.TmServerControllerBase;
import jp.co.menox.tmcommon.model.Category;
import jp.co.menox.tmserver.service.CategoryService;

import org.slim3.controller.Navigation;
import org.slim3.util.ApplicationMessage;

/**
 * サンプル実装：　カテゴリー登録画面
 * @author
 *
 */
public class SampleRegisterController extends TmServerControllerBase {

    CategoryService service;
    
    {
        service = new CategoryService();
    }
    
    @Override
    public Navigation run() throws Exception {
        
        // 編集か新規か？
        Long idParam = this.asLong("id");
        if (idParam == null) {
            // 新規扱い
            return forward("sampleRegister.jsp");
        }
        
        // 対象model取得
        long id = idParam.longValue();
        Category model = null;
        try {
            model = service.select(id);
        } catch(Exception e) {
            model = null;
        } finally {
            if (model == null) {
                // TODOF: 何かのケースでmodelが見つからない場合（通常排他問題）
                //  ⇒notfoundメッセージ自体登録していないので下でも失敗する。遷移先も適当に記述。
                errors.put("message", ApplicationMessage.get("error.entry.notfound"));
                return forward(basePath);
            }
        }

        // 画面へ引き渡し
        requestScope("id", id);
        requestScope("cate", model);
        
        return forward("sampleRegister.jsp");
    }
}
